package com.engine4cloud.tdf.supervision.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.engine4cloud.tdf.common.core.constant.enums.InvAuditActionStatusEnum;
import com.engine4cloud.tdf.common.core.constant.enums.InvAuditResultStatusEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 调查评估-委托
 *
 * @author pig
 * @date 2024-02-29 10:42:47
 */
@Data
@TableName("dcpg_investigation")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "调查评估信息表")
public class DcpgInvestigationEntity extends Model<DcpgInvestigationEntity> {

    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    @Schema(description = "主键")
    private Long id;

    /**
     * 委托编号
     */
    @Schema(description = "委托编号")
    private String wtbh;

    /**
     * 拟适用社区矫正人员类型
     */
    @Schema(description = "拟适用社区矫正人员类型")
    private String nsysqjzrylx;

    /**
     * 委托单位
     */
    @Schema(description = "委托单位")
    private String wtdw;

    /**
     * 调查评估编号
     */
    @Schema(description = "调查评估编号")
    private String dcpgbh;

    /**
     * 被告人姓名
     */
    @Schema(description = "被告人姓名")
    private String bgrxm;

    /**
     * 被告人证件类型
     */
    @Schema(description = "被告人证件类型")
    private String bgrzjlx;

    /**
     * 被告人证件号
     */
    @Schema(description = "被告人证件号")
    private String bgrzjh;

    /**
     * 被告人性别
     */
    @Schema(description = "被告人性别")
    private String bgrxb;

    /**
     * 被告人出生日期
     */
    @Schema(description = "被告人出生日期")
    private LocalDate bgrcsrq;

    /**
     * 被告人居住地所在省
     */
    @Schema(description = "被告人居住地所在省")
    private String bgrjzdszs;

    /**
     * 被告人固定居住地所在地
     */
    @Schema(description = "被告人固定居住地所在地")
    private String bgrjzdszds;

    /**
     * 被告人固定居住地所在县
     */
    @Schema(description = "被告人固定居住地所在县")
    private String bgrjzdszxq;

    /**
     * 被告人固定居住地
     */
    @Schema(description = "被告人固定居住地")
    private String bgrjzd;

    /**
     * 被告人居住地址
     */
    @Schema(description = "被告人居住地址明细")
    private String bgrjzddz;

    /**
     * 被告人工作单位
     */
    @Schema(description = "被告人工作单位")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String bgrgzdw;

    /**
     * 原判刑期
     */
    @Schema(description = "原判刑期")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String ypxq;

    /**
     * 原判刑期开始日期
     */
    @Schema(description = "原判刑期开始日期")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDate ypxqksrq;

    /**
     * 原判刑期结束日期
     */
    @Schema(description = "原判刑期结束日期")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDate ypxqjsrq;

    /**
     * 拟适用矫正类别
     */
    @Schema(description = "拟适用矫正类别")
    private String nsyjzlb;

    /**
     * 原判刑罚
     */
    @Schema(description = "原判刑罚")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String ypxf;

    /**
     * 附加刑
     */
    @Schema(description = "附加刑")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String fjx;

    /**
     * 判决机关
     */
    @Schema(description = "判决机关")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String pjjg;

    /**
     * 判决日期
     */
    @Schema(description = "判决日期")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDate pjrq;

    /**
     * 调查单位（司法所）
     */
    @Schema(description = "调查单位（司法所）")
    private Long dcdwsfs;

    /**
     * 调查单位（县区局）
     */
    @Schema(description = "调查单位（县区局）")
    private Long dcdwxqj;

    /**
     * 调查结果说明
     */
    @Schema(description = "调查结果说明")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String dcjgsm;

    /**
     * 调查意见审核人
     */
    @Schema(description = "调查意见审核人")
    private String dcyjshr;

    /**
     * 调查评估结果-是否适合社区矫正
     */
    @Schema(description = "调查评估结果-是否适合社区矫正")
    private String dcpgjg;

    /**
     * 调查审核结果（用于详情上）
     */
    @Schema(description = "调查审核结果")
    private InvAuditResultStatusEnum dcshjg;

    /**
     * 调查审核结果说明（用于详情上）
     */
    @Schema(description = "调查审核结果说明")
    private String dcshsm;

    /**
     * 备注
     */
    @Schema(description = "备注")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String bz;

    /**
     * 所属部门id
     */
    @Schema(description = "所属部门id")
    private Long deptId;

    /**
     * 先前的审核动作（状态）
     */
    @Schema(description = "先前的审核动作（状态）")
    private InvAuditActionStatusEnum preAction;

    /**
     * 创建人
     */
    @TableField(fill = FieldFill.INSERT)
    @Schema(description = "创建人")
    private String createBy;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    /**
     * 更新人
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @Schema(description = "更新人")
    private String updateBy;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @Schema(description = "更新时间")
    private LocalDateTime updateTime;

    /**
     * 是否删除
     */
    @TableLogic
    @TableField(fill = FieldFill.INSERT)
    @Schema(description = "是否删除")
    private String delFlag;

    /**
     * 租户id
     */
    @Schema(description = "租户id")
    private Long tenantId;
}